package com.service.thread;

import org.slf4j.TtlMDCAdapter;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * 描述：
 * 程序启动时，让TtlMDCAdapter生效
 * 使用日志的MDC类 达到全局链路追踪
 *
 *  开头执行
 *   MDC.put("traceId", UUID.randomUUID().toString());
 *
 *  执行过程中获取
 *
 *   MDC.get(String);
 *
 *   缺点：
 *   只能传递字符串。
 * @author xianggj
 * @Date 2021/11/18 18:32
 **/
public class TtlMDCAdapterInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {

    @Override
    public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
        // 加载自定义的MDCAdapter
        TtlMDCAdapter.getInstance();
    }

}
